Skip Headers

Oracle® Database Net Services Administrator's Guide 10g Release 2 (10.2) Part Number B14212-02 |
Home | Book List | Contents | Index | Master Index | Feedback

Previous | Next
| View PDF

# 11 Configuring and Administering Oracle Connection Manager

This chapter describes how to configure Oracle Connection Manager features.

This chapter contains these topics:

- Oracle Connection Manager Configuration Overview

- Configuring Oracle Connection Manager

- Enabling Oracle Connection Manager Features

- Migrating cman.ora from Oracle9i to Oracle Database 10g

  Note: Oracle Connection Manager is available for installation with Oracle Database 10gEnterprise Edition.

  See Also: Chapter 1, "Networking Challenges in the Internet Age" for an introductory level overview of Oracle Connection Manager concepts Chapter 5, "Architecture of Oracle Net Services" for an architectural overview of Oracle Connection Manager

## Oracle Connection Manager Configuration Overview

Oracle Connection Manager is a proxy server, an intermediate server that forwards connection requests to database servers or to other proxy servers. It has two primary functions:

- Session multiplexing

- Access control

With session multiplexing, you can quickly enable Oracle Connection Manager to funnel multiple client sessions through a network connection to a shared server destination.

With access control, you can use rule-based configuration to filter out certain client requests and accept others.

## Configuring Oracle Connection Manager

To configure Oracle Connection Manager:

1. Configure the `cman.ora` file on the Oracle Connection Manager computer. This file specifies the listening endpoint for the server, access control rules, and Oracle Connection Manager performance parameters.

2. Configure clients with the protocol addresses of the Oracle Connection Manager listener.

3. Optionally Configure the database server for session multiplexing.

This section contains these topics:

- Configuring the Oracle Connection Manager Computer

- Configuring Clients for Oracle Connection Manager

- Configuring the Oracle Database Server for Oracle Connection Manager

### Configuring the Oracle Connection Manager Computer

Note: Oracle Net Manager does not support configuration of the `cman.ora` file, so changes must be made manually.

To configure the machine where Oracle Connection Manager is installed, you can define three types of parameters in the `cman.ora` file:

- Listening endpoint (`ADDRESS`)

- Access control rule list (`RULE_LIST`)

- Parameter list (`PARAMETER_LIST`)

The `cman.ora` file is located in the `$ORACLE_HOME/network/admin` directory on UNIX and in the `ORACLE_HOME``\network\admin` directory on Windows. Example 11-1 shows an example `cman.ora` file file that contains a configuration entry for an Oracle Connection Manager called `CMAN1`.

Example 11-1 Example cman.ora File

    CMAN1=
      (CONFIGURATION=
        (ADDRESS=(PROTOCOL=tcp)(HOST=proxysvr)(PORT=1521))
        (RULE_LIST=
          (RULE=(SRC=206.62.226.32/27)(DST=sales-server)(SRV=*)(ACT=accept)
            (ACTION_LIST=(AUT=on)(MCT=120)(MIT=30)))
          (RULE=(SRC=206.26.226.32)(DST=proxysvr)(SRV=cmon)(ACT=accept)))
        (PARAMETER_LIST=
          (MAX_GATEWAY_PROCESSES=8)
          (MIN_GATEWAY_PROCESSSES=3)
          (REMOTE_ADMIN=YES)))

One computer can host any number of Oracle Connection Managers, each with its own configuration entry in `cman.ora`. When defining more than one Oracle Connection Manager in the file, you can assign a default by giving only one a fully qualified host name.

See Also: The Oracle Database Net Services Reference, Chapter2, "Oracle Connection Manager Control Utility", to learn more about this feature and the `ADMINISTER` and `STARTUP` commands

#### Listening Endpoint (ADDRESS)

The listening endpoint specifies the protocol address for the Oracle Connection Manager listener. CMON, the Oracle Connection Manager monitoring process, uses this address to register information about gateway processes with the listener. The database server, in turn, uses the address to register service information at the Oracle Connection Manager node.

Note that the Oracle Connection Manager listener always listens on the TCP/IP protocol. The address shown in Figure 11-0 is the default address of TCP/IP, port 1521.

    (ADDRESS=(PROTOCOL=tcp)(HOST=proxysvr)(PORT=1521))

Note: Oracle Connection Manager can connect to the database server using protocols such as TCP/IP and IPC. The protocol TPCS is not supported.

#### Access Control Rule List (RULE_LIST)

The access control rule list specifies which connections are accepted, rejected, or dropped by the listener.

    (RULE=(SRC=206.62.226.32/27)(DST=sales-server)(SRV=*)(ACT=accept)
      (ACTION_LIST=(AUT=on)(MCT=120)(MIT=30)))
    (RULE=(SRC=206.26.226.32)(DST=proxysvr)(SRV=cmon)(ACT=accept))

The example shows two rules. The first one is for client connections. The second is for the Oracle Connection Manager Control utility (CMCTL). In the first rule, `src=206.62.226.32/27` designates the IP address of the client, or source. `DST=sales-server` designates the destination host name. The abbreviation `ACT` stands for "action"—that is, accept, reject, or drop. In the second rule, `SRC=206.26.226.32` and `DST=proxysvr` represent the same server, indicating that Oracle Connection Manager and CMCTL must reside on the same computer.

The parameter `ACTION_LIST` in the first rule sets attributes for a connection if it is accepted. This parameter enables you to override default parameter settings on a connection by connection basis. See "Oracle Connection Manager Parameters" in Oracle Database Net Services Reference for a complete definition of `ACTION_LIST` subparameters.

You can specify multiple rules for both client and CMCTL connections.

Notes: You must enter at least one rule for client connections and one rule for CMCTL connections. Omitting one or the other results in the rejection of all connections for the rule type omitted. If the CMCTL connection is remote, the `REMOTE_ADMIN` parameter in `cman.ora` must be set to `on`, regardless of the rules specified. If cman.ora does not exist, Oracle Connection Manager cannot start. Oracle Connection Manager does not support wildcards for partial IP addresses. If you use a wildcard, use it in place of a full IP address. The IP address of the client may, for example, be (SRC=*). Oracle Connection Manager supports only the /nn notation for subnet addresses. In the first rule in the example, /27 represents a subnet mask that comprises 27 left-most bits. This means that only the first 27 bits in the client's IP address are compared with the IP address in the rule.

#### Parameter List (PARAMETER_LIST)

The parameter list sets attributes for an Oracle Connection Manager. Parameters take two forms: global and rule level.

A global parameter applies to all Oracle Connection Manager connections, unless a rule-level parameter overrides it. To change a global parameter's default setting, enter it into the `PARAMETER_LIST`, together with an allowable value.

A rule-level parameter is enabled in the `ACTION_LIST` section of the `RULE_LIST` and applies only to connections specified by the rule. It overrides its global counterpart.

See Also: Oracle Database Net Services Reference for a complete list of parameters and their default and allowed values

### Configuring Clients for Oracle Connection Manager

To route clients to the database server through Oracle Connection Manager, configure the `tnsnames.ora` file with a connect descriptor that specifies the protocol address of Oracle Connection Manager. This address enables clients to connect to the Oracle Connection Manager computer. The connect descriptor looks like this:

    sales=
      (DESCRIPTION=
        (ADDRESS=
          (PROTOCOL=tcp)
          (HOST=cman-pc)
          (PORT=1521))
        (CONNECT_DATA=
          (SERVICE_NAME=sales.com)))

To configure a protocol address for Oracle Connection Manager:

1. Start Oracle Net Manager.

   See Also: "Oracle Net Manager"

2. In the navigator pane, expand Directory or Local > Service Naming.

3. Click plus (+) from the toolbar, or choose Edit > Create.

   The Welcome page of the Net Service Name Wizard appears.

4. Enter any name in the Net Service Name field.

5. Click Next.

   The Protocol page appears.

6. Select the protocol on which Oracle Connection Manager is configured to listen on. By default this protocol is TCP/IP.

7. Click Next.

   The Protocol Settings page appears.

8. Enter the appropriate parameter information for the selected protocol in the fields provided. If you are using TCP/IP, the default port to use is 1521.

   See Also: Oracle Database Net Services Reference for protocol parameter settings

9. Click Next.

   The Service page appears.

10. Select a release, and then enter the name of destination database service.

    If the destination service is an Oracle Database 10g, Oracle9i or Oracle8i database, select Oracle8 i or later, and enter a service name in the Service Name field. If destination service is an Oracle release 8.0 database, select Oracle8 or Previous, and enter an Oracle System Identifier (SID) for an instance in the Database SID field.

    See Also: "About Connect Descriptors" for further information about setting the service name string

11. Click Next.

    Note: Do not click Test, because a connection cannot be tested at this point.

12. Click Finish to save your configuration and dismiss Net Service Name Wizard.

    The new net service name and the Oracle Connection Manager protocol address is added to the Service Naming folder.

### Configuring the Oracle Database Server for Oracle Connection Manager

Configuring the database server is a two-part process that involves registering database information remotely with Oracle Connection Manager and, optionally, configuring the server for multiplexing.

#### Service Registration Configuration

To enable the database server to communicate with Oracle Connection Manager, the initialization parameter file `init.ora` must contain a descriptor that specifies the listening address of Oracle Connection Manager. Because this address is TCP, port 1521 but not the default local listening address of TCP, port 1521, you must specify an alias, using the `REMOTE_LISTENER` parameter:

    REMOTE_LISTENER=cman_listener_alias

After the alias is specified, it must be resolved with a service name entry in the `tnsnames.ora` file.

For example, an alias for an Oracle Connection Manager listener located at proxyserver1 might look like this in the `init.ora` file:

    REMOTE_LISTENER=listener_cman

The alias `listeners_cman` would then be resolved to the following entry in the `tnsnames.ora` file:

    listener_cman=
     (DESCRIPTION=
      (ADDRESS_LIST=
       (ADDRESS=(PROTOCOL=tcp)(HOST=proxyserver1)(PORT=1521))))

Once the initialization parameter file is configured with the listening address of Oracle Connection Manager, the PMON process—the database instance background process—can register database information with the Oracle Connection Manager listener. This registration is similar to what occurs on the proxy node, where the CMADMIN (Connection Manager Administration) process—the Oracle Connection Manager background process—registers the location and load of proxy processes with the listener of Oracle Connection Manager.

See Also: "Registering Information with a Remote Listener"

#### Session Multiplexing Configuration

To enable Connection Manager to take advantage of session multiplexing, set the `DISPATCHERS` parameter in the initialization parameter file with the attributes `PROTOCOL` and `MULTIPLEX`.

    DISPATCHERS="(PROTOCOL=tcp)(MULTIPLEX=on)"

See Also: "Enabling Session Multiplexing" for configuration details. Chapter 12, "Configuring Dispatchers" for more information about configuring shared server.

## Enabling Oracle Connection Manager Features

This section contains these topics:

- Enabling Session Multiplexing

- Enabling Access Control

The first feature is enabled by using the parameter `DISPATCHERS` in the initialization parameter file, the second by using the parameter `RULE_LIST` in the `cman.ora` file.

### Enabling Session Multiplexing

Once the attributes `PROTOCOL` and `MULTIPLEX` have been added to the parameter `DISPATCHERS` in the initialization parameter file, enabling session multiplexing is simply a matter of ensuring that `MULTIPLEX` is set to `on` or to an equivalent value.

See Also: "Enabling Session Multiplexing"

You can set different levels of multiplexing, as Table 11-1 shows.

Table 11-1 Session Multiplexing Parameters

Attribute | Description
--- | ---
`PROTOCOL (PRO or PROT)` | The network protocol for which the dispatcher generates a listening endpoint.
`MULTIPLEX (MUL or MULT)` | Used to enable session multiplexing If `1`, `on`, `yes`, `true`, or `both` is specified, then multiplexing is enabled for both incoming and outgoing network sessions. If `in` is specified, then multiplexing is enabled for incoming network sessions from the client. If `out` is specified, then multiplexing is enabled for outgoing network sessions. If `0`, `no`, `off`, or `false` is specified, then multiplexing is disabled for both incoming and outgoing network sessions.

Note: You can configure the `DISPATCHERS` parameter using the Database Configuration Assistant.

### Enabling Access Control

As stated in "Configuring the Oracle Connection Manager Computer", you can use the parameter `RULE_LIST` to control client access to designated database servers in a TCP/IP environment. By entering filtering rules under this parameter, you can allow or restrict specific clients access to a database server.

To configure access control:

1. Manually create a `cman.ora` file, if one does not already exist.

2. Add the parameter `RULE_LIST` and its subparameters, using the following format:

       (RULE_LIST=
               (RULE=(SRC=source_host)
                     (DST=destination_host)
                     (SRV=service)
                     (ACT=accept | reject | drop)))

3. Add the following parameters for each rule described in Table 11-2 as needed.

Table 11-2 Rule-Level Parameters

Parameter | Description
--- | ---
`SRC` | Specify the source host name or IP address of the client. The IP address can be a subnet such as 152.10.10.62/24.
`DST` | Specify the destination host name or IP address of the database server. The IP address can be a subnet such as 152.10.10.62/24.
`SRV` | Specify the service name of the Oracle Database 10g, Oracle9i, or Oracle8i database (obtained from the `SERVICE_NAME` parameter in the initialization parameter file).
`ACT` | Specify to accept, reject, or drop incoming requests based on the preceding three parameters.

See Also: Oracle Database Net Services Reference for default values and allowed values of Oracle Connection Manager parameters

You can define multiple rules in the `RULE_LIST`. The action (`ACT`) in the first matched `RULE` is applied to the connection request. If no rules are defined, all connections are rejected.

In the following example, client computer `client1-pc` is denied access to the service `sales.us.acme.com`, but client `144.25.23.45` is granted access to the service `db1`.

    (RULE_LIST=
      (RULE=(SRC=client1-pc)(DST=sales-server)(SRV=sales.us.acme.com)(ACT=reject))
      (RULE=(SRC=144.25.23.45)(DST=144.25.187.200)(SRV=db1)(ACT=accept)))

See Also: Oracle Database Net Services Reference for further information about Oracle Connection Manager parameters

## Migrating cman.ora from Oracle9i to Oracle Database 10g

If you want to migrate an Oracle9i cman.ora file to Oracle Database 10g, use the cmmigr tool. Here is the syntax for the tool:

    cmmigr [cman.ora_location]

Specifying the file location is optional. If you omit it, cmmigr tries to find the file in the `TNS_ADMIN` directory; then it looks in `$ORACLE_HOME/network/admin`.When it runs, cmmigr renames the Oracle9i `cman.ora` file `cman.bak`. It names the Oracle Database 10g file `cman.ora`. The tool migrates three of the four sections that are in the Oracle9i file:

- Address section: cmmigr converts the listener protocol address from the Oracle9i format to the Oracle Database 10g format

- Admin section: cmmigr ignores this section.

- Profile section: cmmigr translates the parameter names in cman_profile into Oracle Database 10g names. With the exception of log level and trace level, the tool leaves parameter values untouched. Obsolete parameters appear in a commented list in the new file.

- Rules section: cmmigr copies existing rules to the new file. It adds a rule that enables CMCTL to contact CMADMIN. If the old file contains no rules, cmmigr adds two rules to the new file: one for the connection between CMCTL and CMADMIN and one for the client connection. See "Access Control Rule List (RULE_LIST)" for examples of these two rules.

The tool throws the messages listed in Table 11–3.

Table 11-3

Message | Description
--- | ---
1.4140 -"Migration completed successfully." | This message appears when cman.ora has been migrated successfully.
2.4141-"Unable to find CMAN.ORA." | This message appears when the file location that you specify is incorrect.
3.4142-"CMAN.ORA has an invalid format." | This message appears when the file is in a format that cmmigr cannot understand. Need formatting guidelines
4.4143-"Unable to write the new CMAN.ORA file." |
5.4144-"Nothing to migrate." | The tool found nothing in the file that it could migrate.